using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Configuration;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class GridViewAndValidatorObjectPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
            FillRecruiterAccount(GridView1);
    }

    void FillRecruiterAccount(GridView gridView)
    {
        try
        {
            SqlDataSource sqlDataSource = new SqlDataSource();
            sqlDataSource.ConnectionString =
            WebConfigurationManager.ConnectionStrings[
                "RecruitVietnamDbConnectionString"
                ].ConnectionString;
            sqlDataSource.SelectCommandType =
            SqlDataSourceCommandType.Text;
            sqlDataSource.SelectCommand = "select " +
            "Email,CompanyName,JobPostingBalance, "
            + "ResumeViewingBalance, Agency"+
            " from tblRCAccounts";
            gridView.DataSource = sqlDataSource;
            gridView.DataBind();
        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        FillRecruiterAccount(GridView1);
    }
    int runningTotal = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        GridViewRow gridViewRow = e.Row;
        if (runningTotal > 1 && runningTotal < 12)
        {
            
            CheckBox  checkBoxField = (CheckBox)
            gridViewRow.Cells[6].Controls[0];
             
            if (checkBoxField != null && !checkBoxField.Checked)
                {
                
                TextBox textBox = new  TextBox();
                textBox.Width= Unit.Pixel(40);
                textBox.MaxLength=3;
                textBox.ID="txtJobPostingBalance";                
                 
                if (textBox != null)
                {
                    textBox.Text = gridViewRow.Cells[3].Text;
                }
                gridViewRow.Cells[2].Controls.Add(textBox);                
                AddValidator(gridViewRow,2,"txtJobPostingBalance");
                
                textBox = new  TextBox();
                textBox.Width = Unit.Pixel(40);
                textBox.MaxLength = 3;
                textBox.ID="txtResumeViewingBalance";                
                
                
                if (textBox != null)
                {
                    textBox.Text = gridViewRow.Cells[5].Text;
                }
                gridViewRow.Cells[4].Controls.Add(textBox);
                AddValidator(gridViewRow, 4, "txtResumeViewingBalance");
            }
            else
            {
                gridViewRow.Cells[2].Text = gridViewRow.Cells[3].Text;
                gridViewRow.Cells[4].Text=gridViewRow.Cells[5].Text;
            }
        }
        
        if (runningTotal > 0 && runningTotal < 12)
        {
            gridViewRow.Cells[3].Visible = false;
            gridViewRow.Cells[5].Visible = false;
        }
         
        runningTotal++;
    }
    void AddValidator(GridViewRow gridViewRow,
    int colToAdd, string controlToValidate)
    {
        CompareValidator compareValidator = new CompareValidator();
        compareValidator.ControlToValidate = controlToValidate;
        compareValidator.Operator = 
        ValidationCompareOperator.DataTypeCheck;
        compareValidator.Type = ValidationDataType.Integer;
        compareValidator.Text = "Integer number";
        gridViewRow.Cells[colToAdd].Controls.Add(compareValidator);
    }
    
}
